<?php
/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link      http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository
 * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Application\Service\UserService;
use Application\Service\UserFacebookService;
use Application\Entity\UserFacebook;
use Application\Entity\User;
use Zend\Mvc\Controller\Plugin\Redirect;
use Zend\Authentication\AuthenticationService;
use Zend\Log\Logger;
use Zend\Log\Writer\Stream;

class MainController extends AbstractActionController
{
    protected $em;
    protected $storage;
    protected $authservice;
    
    public function init()
    {
    	if (null === $this->em) {
    		$this->em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
    	}
    	return $this->em;
    }
    
    public function getSessionStorage()
    {
    	if (! $this->storage) {
    		$this->storage = $this->getServiceLocator()
    		->get('Application\Model\MyAuthStorage');
    	}
    
    	return $this->storage;
    }
    
    public function getAuthService()
    {
    	if (! $this->authservice) {
    		$this->authservice = $this->getServiceLocator()
    		->get('Zend\Authentication\AuthenticationService');
    	}
    	return $this->authservice;
    }
    
    
    public function isAuthenticate()
    {
    	if ($user = $this->identity()) {
    		return true;
    	} else {
    		return false;
    	}
    }
    
 
   
   public function logoutAction()
    {
        $me = $this->getServiceLocator()->get('ReverseOAuth2\Facebook');
        
        $me->clear();
        $this->getAuthService()->clearIdentity();
         
        $this->flashmessenger()->addMessage("You've been logged out");
        return $this->redirect()->toRoute('home');
    }
   
}
